export default {
  // 消息提示
  msg(content) {
    this.showCustomToast(content, 'info')
  },
  // 错误消息
  msgError(content) {
    this.showCustomToast(content, 'error')
  },
  // 成功消息
  msgSuccess(content) {
    this.showCustomToast(content, 'success')
  },
  // 隐藏消息
  hideMsg(content) {
    uni.hideToast()
  },
  
  // 自定义Toast样式
  showCustomToast(content, type = 'info') {
    // 定义样式配置
    const styles = {
      success: {
        backgroundColor: '#10b981',
        icon: '🎉',
        title: '操作成功'
      },
      error: {
        backgroundColor: '#ef4444',
        icon: '❌',
        title: '操作失败'
      },
      info: {
        backgroundColor: '#3b82f6',
        icon: '💡',
        title: '提示信息'
      },
      warning: {
        backgroundColor: '#f59e0b',
        icon: '⚠️',
        title: '警告信息'
      }
    }
    
    const style = styles[type] || styles.info
    
    // 短文本使用showToast，长文本使用showModal
    if (content.length <= 12) {
      // 短文本使用原生showToast
      uni.showToast({
        title: style.icon + ' ' + content,
        icon: 'none',
        duration: 2000,
        mask: false
      })
    } else {
      // 长文本使用showModal，确保内容完全显示
      uni.showModal({
        title: style.icon + ' ' + style.title,
        content: content,
        showCancel: false,
        confirmText: '知道了',
        confirmColor: style.backgroundColor
      })
    }
  },
  // 弹出提示
  alert(options) {
    // 支持对象参数或传统参数
    let config = {}
    if (typeof options === 'string') {
      // 传统调用方式：alert(content, title)
      config = {
        content: arguments[0],
        title: arguments[1] || '系统提示'
      }
    } else if (typeof options === 'object') {
      config = options
    }
    
    return new Promise((resolve, reject) => {
      uni.showModal({
        title: config.title || '系统提示',
        content: config.content,
        showCancel: config.showCancel || false,
        confirmText: config.confirmText || '确定',
        cancelText: config.cancelText || '取消',
        confirmColor: config.confirmColor || '#2563eb',
        cancelColor: config.cancelColor || '#64748b',
        success: function(res) {
          resolve(res)
        },
        fail: function(err) {
          reject(err)
        }
      })
    })
  },
  // 确认窗体
  confirm(content, title) {
    return new Promise((resolve, reject) => {
      uni.showModal({
        title: title || '系统提示',
        content: content,
        cancelText: '取消',
        confirmText: '确定',
        success: function(res) {
          if (res.confirm) {
            resolve(res.confirm)
          }
        }
      })
    })
  },
  // 提示信息
  showToast(option) {
    if (typeof option === "object") {
      uni.showToast(option)
    } else {
      uni.showToast({
        title: option,
        icon: "none",
        duration: 2500
      })
    }
  },
  // 打开遮罩层
  loading(content) {
    uni.showLoading({
      title: content,
      icon: 'none'
    })
  },
  // 关闭遮罩层
  closeLoading() {
    try {
        uni.hideLoading()
    } catch (e) {
        console.log(e)
    }
  }
}
